﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using Sofire.DataComm.Remoting.Server.Settings;

namespace Sofire.DataComm.Remoting.Server
{
    /// <summary>
    /// 表示一个服务器。
    /// </summary>
    public interface IServer : ICommunicationState
    {
        /// <summary>
        /// 获取当前服务的所属主机配置信息。
        /// </summary>
        HostSetting Host { get; }
        /// <summary>
        /// 获取当前服务器的地址。
        /// </summary>
        EndPoint EndPoint { get; }
        /// <summary>
        /// 获取与当前服务器相关联的服务配置。
        /// </summary>
        IEnumerable<ServiceSetting> Services { get; }

        /// <summary>
        /// 获取当前正在与服务器连接的客户群。
        /// </summary>
        /// <returns>返回格式为“ip:port”的客户地址群。</returns>
        IEnumerable<RemotingContext> GetActivingClients();
    }
}
